1. Field of the Invention
The present invention relates to the field of computer graphics. Specifically, the present invention relates to high-precision blending and rendering operations in computer graphics.
2. Related Art
Graphics software provides modern graphics artists seemingly unlimited opportunities for providing realistic two- and three-dimensional textured color graphics. Unfortunately, the graphics software, more precisely software interfaces that support graphics hardware, are often limited by the graphics capabilities of the hardware platform.
StudioPaint.TM. is a well known and highly regarded drawing application that uses the OpenGL.TM. software interface for graphics. StudioPaint has numerous functions, such as an airbrush paint program that permits a graphics artist to paint computerized objects similarly to using a real paint spray.
When StudioPaint runs on a twelve bit per channel hardware platform, (such as SGI Infinite Reality Engine.TM.) no blending distortions are viewable from use of such functions as the airbrush paint program. Blending refers to the combining of color layers already sprayed with the airbrush (stored in a frame buffer memory) with additional layers of colors sprayed over these layers. The channels for the RGBA multispectral color model used by StudioPaint are respectively the red, green, and blue channels, representing the image colors, and the alpha channel, representing the image transparency.
On the other hand, if StudioPaint is run, for example, on an 8 bit per channel hardware platform, (such as SGI Impact.TM. or SGI O2.TM.) then distortions can result. In fact, SGI Impact supports at most three channel blending at twelve bits per channel, not the four RGBA channels needed. The blending distortions result from the fact that with fewer bits, there are fewer possible variations for each of the channel representations. For example, with eight bits used for the red channel, only two hundred fifty six different shades of red (i.e., two to the exponent of eight) are available per pixel. The same principle applies for the other three channels.
There are two specific forms of blending aliasing or distortion viewable upon using the StudioPaint airbrush paint program. As noted, these blending distortions are caused by the fact that fewer color and alpha channel combinations are available when fewer bits are available per channel. The first type of blending distortion is color buildup. For a light shade of a color, it is possible that one of the color channels will reach zero whereas the other color channels will not. If the airbrush is set to such a color mixture, and layers of colors are added on top of one another using the airbrush, the inaccuracy provided by the zero color channel is multiplied with each additional layer. The result is a distorted color caused by the color buildup.
A second blending distortion is known as ringing, which refers to the occurrence of rings of darker paint that show up in an airbrush stroke. The stroke is laid down as a sequence of circular brush stamps, each a circular image that varies in opacity from very transparent at its edge to more opaque at its center. With fewer bits used per channel, as the brush opacity is scaled down (i.e., the brush stamp is very close to being transparent) there are only a handful of different levels of opacity between the center and the edge of the brush stroke. This results in concentric rings of increasing transparency between the center and the edge of the brush stamp, causing interference (or Moire) patterns, some canceling each other out and others adding in the form of dark rings.
There is a need in the computer graphics art to provide two- and three-dimensional textured color graphics via modem graphics software without such blending distortions and the resulting imperfections caused by limited hardware platforms.